/**
 * @param {number[]} arr
 * @param {number[][]} mat
 * @return {number}
 */
var firstCompleteIndex = function (arr, mat) {
  const m = mat.length;
  const n = mat[0].length;
  const map = new Map()

  for(let i=0;i<m;i++){
    for(let j=0;j<n;j++){
      map.set(mat[i][j],[i,j])
    }
  }
  let row = new Array(m).fill(0)
  let col = new Array(n).fill(0)
  for(let i=0;i<arr.length;i++){
    const p = map.get(arr[i])
    row[p[0]]++
    col[p[1]]++
    if(row[p[0]]==n) return i;
    if(col[p[1]]==m) return i;
  }
};

firstCompleteIndex([1,3,4,2],[[1,4],[2,3]])